home *** CD-ROM | disk | FTP | other *** search
/ Komputer for Alle 1999 #5 / 1999 CD 5 (black).iso / Delphi3 / install / data.z / BRCSTORD.PAS < prev    next >
Encoding:
Pascal/Delphi Source File  |  1997-08-05  |  4.0 KB  |  148 lines

  1. unit BrCstOrd;
  2.  
  3. interface
  4.  
  5. uses
  6.   SysUtils, Windows, Messages, Classes, Graphics, Controls,
  7.   Forms, Dialogs, DBTables, DB, DBCtrls, StdCtrls, ExtCtrls, Grids, DBGrids, Buttons;
  8.  
  9. type
  10.   TBrCustOrdForm = class(TForm)
  11.     CtrlsPanel: TPanel;
  12.     Navigator: TDBNavigator;
  13.     BtnPanel: TPanel;
  14.     EditBtn: TButton;
  15.     CloseBtn: TButton;
  16.     ActivateBtn: TSpeedButton;
  17.     DefineBtn: TSpeedButton;
  18.     CustPanel: TPanel;
  19.     CustGrid: TDBGrid;
  20.     OrdersPanel: TPanel;
  21.     OrdersGrid: TDBGrid;
  22.     Bevel1: TBevel;
  23.     procedure CustGridEnter(Sender: TObject);
  24.     procedure SetQuery(Sender: TObject);
  25.     procedure ActivateQuery(Sender: TObject);
  26.     procedure EditBtnClick(Sender: TObject);
  27.     procedure CloseBtnClick(Sender: TObject);
  28.     procedure OrdersGridEnter(Sender: TObject);
  29.     procedure FormShow(Sender: TObject);
  30.   private
  31.     FActiveSource: TDataSource;
  32.     function GetCustNo: Double;
  33.     function GetOrderNo: Double;
  34.     procedure SetActiveSource(DataSource: TDataSource);
  35.     procedure SetCustNo(NewCustNo: Double);
  36.     procedure SetOrderNo(NewOrderNo: Double);
  37.     property ActiveSource: TDataSource read FActiveSource write SetActiveSource;
  38.   public
  39.     property CustNo: Double read GetCustNo write SetCustNo;
  40.     property OrderNo: Double read GetOrderNo write SetOrderNo;
  41.   end;
  42.  
  43. var
  44.   BrCustOrdForm: TBrCustOrdForm;
  45.  
  46. implementation
  47.  
  48. uses QryCust, EdCust, EdOrders, Main, DataMod;
  49.  
  50. {$R *.DFM}
  51.  
  52. { Retrieve from active customer table or query--whichever is active }
  53.  
  54. function TBrCustOrdForm.GetCustNo: Double;
  55. begin
  56.   Result := MastData.CustMasterSrc.Dataset.Fields[0].AsFloat;
  57. end;
  58.  
  59. procedure TBrCustOrdForm.SetCustNo(NewCustNo: Double);
  60. begin
  61.   MastData.CustMasterSrc.Dataset := MastData.Cust;
  62.   MastData.Cust.Locate('CustNo', NewCustNo, []);
  63. end;
  64.  
  65. function TBrCustOrdForm.GetOrderNo: Double;
  66. begin
  67.   Result := MastData.OrdByCustOrderNo.Value;
  68. end;
  69.  
  70. procedure TBrCustOrdForm.SetOrderNo(NewOrderNo: Double);
  71. begin
  72.   MastData.OrdByCust.Locate('OrderNo', NewOrderNo, []);
  73. end;
  74.  
  75. procedure TBrCustOrdForm.SetActiveSource(DataSource: TDataSource);
  76. begin
  77.   FActiveSource := DataSource;
  78.   Navigator.DataSource := FActiveSource;
  79. end;
  80.  
  81. procedure TBrCustOrdForm.CustGridEnter(Sender: TObject);
  82. begin
  83.   ActiveSource := MastData.CustMasterSrc;
  84.   CustGrid.Options := CustGrid.Options + [dgAlwaysShowSelection];
  85.   OrdersGrid.Options := OrdersGrid.Options - [dgAlwaysShowSelection];
  86. end;
  87.  
  88. procedure TBrCustOrdForm.OrdersGridEnter(Sender: TObject);
  89. begin
  90.   ActiveSource := MastData.OrdByCustSrc;
  91.   OrdersGrid.Options := OrdersGrid.Options + [dgAlwaysShowSelection];
  92.   CustGrid.Options := CustGrid.Options - [dgAlwaysShowSelection];
  93. end;
  94.  
  95. procedure TBrCustOrdForm.SetQuery(Sender: TObject);
  96. begin
  97.   if QueryCustDlg.ShowModal = mrOK then
  98.     ActivateQuery(Self);
  99. end;
  100.  
  101. procedure TBrCustOrdForm.ActivateQuery(Sender: TObject);
  102. begin
  103.   if not ActivateBtn.Down then
  104.     MastData.CustMasterSrc.Dataset := MastData.Cust
  105.   else
  106.     with MastData.CustQuery do
  107.     try
  108.       Close;
  109.       Params[0].AsDatetime := QueryCustDlg.FromDate;
  110.       Params[1].AsDatetime := QueryCustDlg.ToDate;
  111.       Open;
  112.       { Any records in the result set? }
  113.       if BOF and EOF then Abort;
  114.       MastData.CustMasterSrc.Dataset := MastData.CustQuery;
  115.     except
  116.       MastData.CustMasterSrc.Dataset := MastData.Cust;
  117.       ActivateBtn.Down := false;
  118.       ShowMessage('No matching records in the specified date range.');
  119.     end;
  120. end;
  121.  
  122. procedure TBrCustOrdForm.EditBtnClick(Sender: TObject);
  123. var
  124.   F: TFloatField;
  125. begin
  126.   F := ActiveSource.Dataset.Fields[0] as TFloatField;
  127.   if ActiveSource = MastData.CustMasterSrc then
  128.     EdCustForm.Edit(F.Value)
  129.   else
  130.   begin
  131.     EdOrderForm.Edit(F.Value);
  132.     ActiveSource.Dataset.Refresh;
  133.   end;
  134. end;
  135.  
  136. procedure TBrCustOrdForm.CloseBtnClick(Sender: TObject);
  137. begin
  138.   Close;
  139. end;
  140.  
  141. procedure TBrCustOrdForm.FormShow(Sender: TObject);
  142. begin
  143.   MastData.Cust.Open;
  144.   MastData.Cust.First;
  145. end;
  146.  
  147. end.
  148.